package com.quick.develop.flowable.application;

import com.quick.develop.flowable.domain.dto.task.BpmTaskDTO;
import com.quick.develop.flowable.domain.manage.BpmManageReqVO;

import java.util.List;

/**
 * @author junyuan.liu
 * @description: 管理后台
 * @date 2022/9/14 10:26
 */
public interface IBpmManageApplication {
    /** 
     * @description 删除流程 已完成、未完成都删除 
     * @param reqVO reqVO
     * @author junyuan.liu
     * @date 2022/9/14 10:42
     */ 
    void deleteInstances(BpmManageReqVO reqVO);
    
    /** 
     * @description 转办任务
     * @param reqVO reqVO
     * @author junyuan.liu
     * @date 2022/9/15 15:01
     */ 
    void assignTask(BpmManageReqVO reqVO);
    
    /** 
     * @description 获取正在运行的任务
     * @param processInstanceId 流程实例ID
     * @return java.util.List<com.quick.develop.flowable.domain.dto.task.BpmTaskDTO>
     * @author junyuan.liu
     * @date 2022/9/15 16:47
     */ 
    List<BpmTaskDTO> getTaskListByProcessInstanceId(String processInstanceId);
    
    /** 
     * @description 流程跳转 无限制
     * @param reqVO reqVO
     * @author junyuan.liu
     * @date 2022/9/18 9:16
     */ 
    void jumpProcess(BpmManageReqVO reqVO);
    
    /** 
     * @description 候选任务释放
     * @param reqVO reqVO
     * @author junyuan.liu
     * @date 2022/9/18 15:29
     */ 
    void unClaimTask(BpmManageReqVO reqVO);
    
    /** 
     * @description 终止流程
     * @param reqVO reqVO
     * @author junyuan.liu
     * @date 2022/9/20 10:34
     */ 
    void cancelInstance(BpmManageReqVO reqVO);
}
